Apache Hadoop是目前被大家广泛使用的数据分析平台,它可靠、高效、可伸缩。Percona公司的Alexander Rubin 最近发表了一篇博客文章介绍了他是如何将一个表从MySQL导出到Hadoop然后将数据加载到Cloudera Impala并在这上面运行报告的。在Alexander Rubin的这个测试示例中他使用的集群包含6个数据节点。下面是具体的规格:
数据导出有很多方法可以将数据从MySQL导出到Hadoop。在Rubin的这个示例中,他简单地将ontime表导出到了一个文本文件中:select * into outfile '/tmp/ontime.psv'
FIELDS TERMINATED BY ','
from ontime;你可以使用“|”或者任何其他的符号作为分隔符。当然,还可以使用下面这段简单的脚本直接从www.transtats.bts.gov上下载数据。
载入Hadoop HDFS
Rubin首先将数据载入到了HDFS中作为一组文件。Hive或者Impala将会使用导入数据的那个目录,连接该目录下的所有文件。在Rubin的示例中,他在HDFS上创建了/data/ontime/目录,然后将本地所有匹配On_Time_On_Time_Performance_*.csv模式的文件复制到了该目录下。
在Impala中创建外部表
当所有数据文件都被载入之后接下来需要创建一个外部表:
注意“EXTERNAL”关键词和LOCATION,后者指向HDFS中的一个目录而不是文件。Impala仅会创建元信息,不会修改表。创建之后就能立即查询该表,在Rubin的这个示例中执行的SQL是:SQL耗时131.38秒。注意GROUP BY并不会对行进行排序,这一点不同于MySQL,如果要排序需要添加 ORDER BY yeard语句。另外通过执行计划我们能够发现Impala需要扫描大小约为45.68GB的文件。Impala使用面向列的格式和压缩
Impala最大的好处就是它支持面向列的格式和压缩。Rubin尝试了新的使用Snappy压缩算法的Parquet格式。因为这个例子使用的表非常大,所以最好使用基于列的格式。为了使用Parquet格式,首先需要载入数据,这在Impala中已经有表、HDFS中已经有文件的情况下是非常容易实现的。本示例大约使用了729秒的时间导入了约1亿5千万条记录,导入之后使用新表再次执行同一个查询所耗费的时间只有4.17秒,扫描的数据量也小了很多,压缩之后的数据只有3.95GB。
Impala复杂查询示例
注意:以上查询不支持sum(ArrDelayMinutes>30)语法,需要使用sum(if(ArrDelayMinutes>30, 1, 0) 代替。另外查询故意被设计为不使用索引:大部分条件仅会过滤掉不到30%的数据。该查询耗时15.28秒比最初的MySQL结果(非并行执行时15分56.40秒,并行执行时5分47秒)要快很多。当然,它们之间并不是一个“对等的比较”:MySQL将扫描45GB的数据而使用Parquet的Impala仅会扫描3.5GB的数据
MySQL运行在一台服务器上,而Hadoop和Impala则并行运行在6台服务器上
尽管如此,Hadoop和Impala在性能方面的表现依然令人印象深刻,同时还能够支持扩展,因此在大数据分析场景中它能为我们提供很多帮助。
感谢崔康对本文的审校。给InfoQ中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ)或者腾讯微博(@InfoQ)关注我们,并与我们的编辑和其他读者朋友交流。
Nutch集成slor的索引方法介绍? ?* 建立索引? ?* @param solrUrl solr的web地址? ?* @param crawlDb 爬取DB的存放路径:\crawl\crawldb
我们想了个办法:把海量数据分成小块,让一台机器处理一小块数据,所有的机器同时工作。最后把结 果汇总起来。这就是“并行计算”。hadoop中的MapReduce就是专门用来做分布式计算的并行处理框架。hadoop就是用来解决大数据的存储和计算的。
以Hadoop Tutorial为主体带大家走一遍如何使用Hadoop分析数据!MapReduce框架由一个Jobracker(通常简称JT)和数个TaskTracker(TT)组成(在cdh4中如果使用了Jobtracker HA特性,则会有2个Jobtracer,其中只有一个为active,另一个作为standby处于inactive状态)。JobTr
重谈下MapReduce框架中用户经常使用的一些接口或类的详细内容。了解这些会极大帮助你实现、配置和优化MR任务。当然javadoc中对每个class或接口都进行了更全面的陈述,这里只是一个指引教程。
hadoop常见问题解决:WARN mapred.LocalJobRunner: job_local910166057_0001o
【聚焦搜索,数智采购】2021第一届百度爱采购数智大会即将于5月28日在上海盛大开启!
本次大会上,紫晶存储董事、总经理钟国裕作为公司代表,与中国—东盟信息港签署合作协议
XEUS统一存储已成功承载宣武医院PACS系统近5年的历史数据迁移,为支持各业务科室蓬勃扩张的数据增量和访问、调用乃至分析需求奠定了坚实基础。
大兆科技全方面展示大兆科技在医疗信息化建设中数据存储系统方面取得的成就。
双方相信,通过本次合作,能够使双方进一步提升技术实力、提升产品品质及服务质量,为客户创造更大价值。